package com.practice.niuke.new_direct_basics.class14;

/**
 * 判断一个32位正数是不是2的幂、 4的幂
 */
public class Code02_Power {

    /**
     * 判断一个32位正数是不是2的幂
     *
     * @param n
     * @return
     */
    public static boolean is2Power(int n) {
        return (n & (n - 1)) == 0;
    }

    /**
     * 判断一个32位正数是不是4的幂
     *
     * @param n
     * @return
     */
    public static boolean is4Power(int n) {
        //010101..010101
        return (n & (n - 1)) == 0 && (n & 0x55555555) != 0;
    }

}
